<html>
<head><meta charset="utf-8"><title>Unevaluated constants · t-compiler/help · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/index.html">t-compiler/help</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html">Unevaluated constants</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="157277142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157277142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157277142">(Jan 31 2019 at 14:56)</a>:</h4>
<p>At which point <code>Unevaluated</code> constants supposed to get evaluated away? I've added some <code>debug!()</code> calls and it seems the same constant (an array length) is handled in <code>AssociatedTypeNormalizer::fold_const</code>... 13 times. Which leads me to believe that the resulting <code>Evaluated</code> value does not replace the original <code>Unevaluated</code> one :-)</p>



<a name="157279057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157279057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157279057">(Jan 31 2019 at 15:19)</a>:</h4>
<p>is the <code>fold_const</code> called on the same constant many times or is the <code>Unevaluated</code> branch in <code>fold_const</code> hit many times?</p>



<a name="157279751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157279751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157279751">(Jan 31 2019 at 15:28)</a>:</h4>
<p>@Oli afaict, it's both. I get the debug output from both right inside the <code>if let ty::LazyConst::Unevaluated</code> and a debug!() call that prints out the result of <code>tcx.intern_lazy_const()</code>. I used sort -u to verify that it's always handling the same constant, fwiw</p>



<a name="157279781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157279781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157279781">(Jan 31 2019 at 15:29)</a>:</h4>
<p>oh, that is not good, can you open an issue with a repro?</p>



<a name="157279912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157279912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157279912">(Jan 31 2019 at 15:31)</a>:</h4>
<p>@Oli an <a href="https://github.com/rust-lang/rust/issues/57796" target="_blank" title="https://github.com/rust-lang/rust/issues/57796">issue</a> already exists :-) I'm simply using it as an excuse to dive into rustc, which is why I'm asking for guidance on whether this is supposed to happen or not</p>



<a name="157280278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280278">(Jan 31 2019 at 15:36)</a>:</h4>
<p>Oh wow. You went from looking at an ICE to finding this issue</p>



<a name="157280282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280282">(Jan 31 2019 at 15:36)</a>:</h4>
<p>hmm</p>



<a name="157280397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280397">(Jan 31 2019 at 15:38)</a>:</h4>
<p>well, it I was tracking the constant that ends up being unevaluated during <code>qualify_consts</code></p>



<a name="157280449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280449">(Jan 31 2019 at 15:39)</a>:</h4>
<p>I'm assuming the constant is part of a <code>TyArray</code>?</p>



<a name="157280571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280571">(Jan 31 2019 at 15:41)</a>:</h4>
<p>yah</p>



<a name="157280723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280723">(Jan 31 2019 at 15:43)</a>:</h4>
<p>So we can basically assume that it's the <code>Self</code>'s fault. I'm guessing we have the <code>Self</code> type somewhere, resolve it to <code>[T; Unevaluated]</code> then compute the <code>Unevaluated</code> and kinda throw the resolved type away</p>



<a name="157280817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280817">(Jan 31 2019 at 15:45)</a>:</h4>
<p>Yah, it does get resolved to [T; Unevaluated], where the Unevaluated value will always be evaluated to the correct result (i.e. bits 30, u8)</p>



<a name="157280832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280832">(Jan 31 2019 at 15:45)</a>:</h4>
<p>The next step would be to figure out if that is true and whether we can make the type folders produce the resolved types</p>



<a name="157280842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280842">(Jan 31 2019 at 15:45)</a>:</h4>
<p>do you know where the <code>Self</code> resolving happens?</p>



<a name="157280868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280868">(Jan 31 2019 at 15:45)</a>:</h4>
<p>nope, searched far and wide for that but eventually timed out and focused on the actual issue</p>



<a name="157280923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157280923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157280923">(Jan 31 2019 at 15:46)</a>:</h4>
<p>(I mean, given that apparently it does get resolved properly)</p>



<a name="157282308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157282308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157282308">(Jan 31 2019 at 16:07)</a>:</h4>
<p>looking at the set of backtraces to figure out which evaluation is supposed to commit the result, but unlikely that I'll figure this out before I have to start packing for fosdem</p>



<a name="157282538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157282538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157282538">(Jan 31 2019 at 16:10)</a>:</h4>
<p>Yea, I am not finding it either</p>



<a name="157282702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157282702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157282702">(Jan 31 2019 at 16:12)</a>:</h4>
<p>uh wait. how are you comparing the unevaluated constants?</p>



<a name="157282717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157282717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157282717">(Jan 31 2019 at 16:13)</a>:</h4>
<p>maybe they are just equal but not the same</p>



<a name="157283051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157283051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157283051">(Jan 31 2019 at 16:17)</a>:</h4>
<p>@Oli, I'm comparing <code>{ def: Item(DefId(0/1:10 ~ iceme[317d]::main[0]::{{constant}}[0])), substs: [] }</code> (i.e. <code>ty::Instance</code> umm, instances)</p>



<a name="157283946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157283946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157283946">(Jan 31 2019 at 16:27)</a>:</h4>
<p><span class="user-mention" data-user-id="127677">@ange</span> the thing is, while the constants are the same, they are duplicated in multiple places before we ever try to const eval them. I think you are just seeing this duplication</p>



<a name="157284041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157284041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157284041">(Jan 31 2019 at 16:28)</a>:</h4>
<p>Now... array lengths are actually quite trivial right now, so we could just always evaluate them right at the creation time, but I think that would but us in a bind in the future</p>



<a name="157284092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157284092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157284092">(Jan 31 2019 at 16:29)</a>:</h4>
<p>@Oli ok great. I'll try to understand this duplication and why it happens then</p>



<a name="157284192"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157284192" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157284192">(Jan 31 2019 at 16:30)</a>:</h4>
<p>yah I guess constant evaluation should be happening at the point where every constant expression that can eventually be evaluated, can be evaluated</p>



<a name="157284207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/157284207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> ange <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#157284207">(Jan 31 2019 at 16:30)</a>:</h4>
<p>(still not sure what that point is though, per my original question)</p>



<a name="247338479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247338479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aurel Bílý <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247338479">(Jul 27 2021 at 14:12)</a>:</h4>
<p>Another unevaluated constants question: I got a <code>ConstKind::Unevaluated</code>, it prints as <code>pointer to alloc3</code>. In the source code it corresponds to <code>A::X</code> for an <code>enum A { X = 5 }</code>. Can I do anything to actually evaluate this to the discriminant of <code>A::X</code>? This is happening <code>after_analysis</code>, so I'm guessing constants <em>should</em> be evaluated/-able?</p>



<a name="247340992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247340992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247340992">(Jul 27 2021 at 14:31)</a>:</h4>
<p>You can use <code>tcx.const_eval_resolve()</code> to evaluate an unevaluated const.</p>



<a name="247344728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247344728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aurel Bílý <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247344728">(Jul 27 2021 at 14:59)</a>:</h4>
<p>Sorry, I should have been clearer. Evaluating the constant using that method gives me a <code>Scalar::Pointer</code>. Is there anything I can do to actually "read" data out of this?</p>



<a name="247350231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247350231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247350231">(Jul 27 2021 at 15:38)</a>:</h4>
<p>Where did you get the unevaluated constant from?</p>



<a name="247351060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247351060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aurel Bílý <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247351060">(Jul 27 2021 at 15:43)</a>:</h4>
<p>It comes from an <code>mir::Operand::Constant(Constant { literal: mir::ConstantKind::Ty(..), .. })</code></p>



<a name="247352093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247352093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247352093">(Jul 27 2021 at 15:50)</a>:</h4>
<p>What is the type of the constant?</p>



<a name="247352167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247352167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aurel Bílý <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247352167">(Jul 27 2021 at 15:51)</a>:</h4>
<p><code>Ref(ReErased, A, Not)</code></p>



<a name="247352217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247352217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247352217">(Jul 27 2021 at 15:51)</a>:</h4>
<p>That means that you are looking at <code>&amp;A::X</code>, not <code>A::X</code>.</p>



<a name="247352229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247352229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247352229">(Jul 27 2021 at 15:51)</a>:</h4>
<p>What is the source rust code?</p>



<a name="247355245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Unevaluated%20constants/near/247355245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aurel Bílý <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Unevaluated.20constants.html#247355245">(Jul 27 2021 at 16:13)</a>:</h4>
<p>It comes from the RHS of <code>a != A::X</code>, where <code>a</code> is just a local of type <code>A</code>. <code>A</code> derives <code>PartialEq</code>.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>